// ——————————————————————————————————————————————————————————————————————————————
// 类的操作：增、删、切换样式
// ——————————————————————————————————————————————————————————————————————————————
//获取元素对象
// var obj = document.querySelector("div");
//指定要操作的类
// var cn = "d2";
// 1、直接换元素的样式，整体替换；
// obj.className = "d2";
// 2、增加一个类
// obj.className += " d2"; //注意类之间要有空格；

// 以下为通用方法：obj为元素对象，cn为要添加的样式类
// 定义一个函数，用来向一个元素中添加指定的class属性值
function addClass(obj, cn) {
  // 如果没有就增加上去
  if (!hasClass(obj, cn)) {
    obj.className += " " + cn;
  }
}

// 判断一个属性中是否已经含有这个属性，如果已经存在了就不加了
function hasClass(obj, cn) {
  // 添加正则表达式,转义字符要用"\"表示，"\b"表示单词边界；
  var reg = new RegExp("\\b" + cn + "\\b");
  return reg.test(obj.className);
}

// 删除一个样式，可独立使用；
function removeClass(obj, cn) {
  var reg = new RegExp("\\b" + cn + "\\b", "g");
  // 有就删除
  obj.className = obj.className.replace(reg, "");
}

// 来回切换类，说到底就是有就删，无就加；
function toggleClass(obj, cn) {
  if (hasClass(obj, cn)) {
    // 有，则删
    removeClass(obj, cn);
  } else {
    // 无，则加
    addClass(obj, cn);
  }
}
// 方法调用：addClass(obj, cn)、toggleClass(obj, cn)...
// 结束 ———————————————————————————————————————————————————————————————————————————



// ——————————————————————————————————————————————————————————————————————————————
// 菜单显示隐藏：宽高伸缩动画
// ——————————————————————————————————————————————————————————————————————————————
function move(obj, attribute, begin, end, SpeedTime, backFuc) {
  if ((attribute = "height")) {
    if (begin < end) {
      var whChange = setInterval(function () {
          obj.style.height = begin + 4 + "px";
          begin += 4;
         if (begin > end) {
            obj.style.height = end + "px";
           //回调函数
           backFuc();
            clearInterval(whChange);
         }
      }, SpeedTime);
    } else {
      var whChange = setInterval(function () {
        obj.style.height = begin - 4 + "px";
        begin -= 4;
        if (begin < end) {
          obj.style.height = end + "px";
          //回调函数
          backFuc();
          clearInterval(whChange);
        }
      }, SpeedTime);
    }
  } else if ((attribute = "width")) {
    if (begin < end) {
      var whChange = setInterval(function () {
        obj.style.width = begin + 4 + "px";
        begin += 4;
        if (begin > end) {
          obj.style.width = end + "px";
          //回调函数
          backFuc();
          clearInterval(whChange);
        }
      }, SpeedTime);
    } else {
      var whChange = setInterval(function () {
        obj.style.width = begin - 4 + "px";
        begin -= 4;
        if (begin < end) {
          obj.style.width = end + "px";
          //回调函数
          backFuc();
          clearInterval(whChange);
        }
      }, SpeedTime);
    }
  }
}
